package cn.hxsteel.purview.core.tool;

import javax.servlet.http.HttpServletRequest;

import cn.hxsteel.purview.core.config.constant.SessionConst;
import cn.hxsteel.purview.model.vo.SessionVO;

/**
 * 用户的工具类
 */
public class SessionTool
{
    /**
     * 获会话的值对象
     * 
     * @return
     */
    public static SessionVO< ? > getSessionVO( HttpServletRequest request )
    {
	return (SessionVO< ? >) request.getSession().getAttribute( SessionConst.SESSION_VO_CONTEXT );
    }
    
    /**
     * 获会话的值对象
     * 
     * @param <E> 实体类的类型
     * 
     * @param E 实体类
     * @return
     */
    @SuppressWarnings( "unchecked" )
    public static < E > SessionVO< E > getSessionVO( Class< E > E, HttpServletRequest request )
    {
	return (SessionVO< E >) request.getSession().getAttribute( SessionConst.SESSION_VO_CONTEXT );
    }
    
    /**
     * 设置会话的值对象
     * 
     * @param sessionVO 会话的值对象
     */
    public static void setSessionVO( SessionVO< ? > sessionVO, HttpServletRequest request )
    {
	request.getSession().setAttribute( SessionConst.SESSION_VO_CONTEXT, sessionVO );
    }
}